home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_proftpd.idb / usr / freeware / lib / proftpd / doc / development.notes.z / development.notes
Encoding:
Text File  |  1999-04-16  |  5.0 KB  |  140 lines

  1. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2. The purpose of this file is to record and log specific technical notes
  3. regarding proftpd development; both current and "to-do" items.  The file
  4. is _not_ distributed with tarball source code releases, and only exists
  5. inside the CVS repository.  If you use this file to annotate your work,
  6. please make sure you follow the existing format.
  7. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  8.  
  9. [ Legend: - = "to do", + = "done", x = "idea has been scrapped" ]
  10.  
  11. GENERAL TODO FOR 1.2.0:
  12.  
  13.   + Configurable logging, including formats, command levels and
  14.     files.
  15.  
  16.   + "Global" configuration directives.  New <Global> context??
  17.     New <Global> directive block, untested.
  18.  
  19.   + Limit connections per IP address in some configurable fashion.
  20.     MaxClientsPerHost directive, by vlad@elis.tasur.edu.ru
  21.  
  22.   + Directive to disable wtmp, xferlog and syslog logging.
  23.  
  24. 8/13/98 JSS:
  25.   
  26.   - Document the following directives:
  27.  
  28.     +<Global>
  29.     +MaxInstances
  30.     +MaxClientsPerHost
  31.     +SystemLog
  32.     +LogFormat
  33.     +ExtendedLog
  34.     UtmpLog
  35.     
  36. 7/19/98 JSS:
  37.  
  38.   + LsDefaultOptions to specify default 'options' that will be applied
  39.     to LIST/NLST/STAT commands in mod_ls.c
  40.  
  41.   + SyslogFacility directive, to configure which facility proftpd
  42.     uses for ALL logging (including auth)
  43.  
  44.   + DirFakeMode directive, to specify "fake" permissions shown in 
  45.     directory listings.
  46.  
  47. 7/14/98 JSS:
  48.  
  49.   + Make Allow/Deny CIDR
  50.  
  51. 7/10/98 JSS:
  52.  
  53.   + Add -t argument to LIST/NLST, sort by time instead of name.
  54.  
  55.   + Add new directive (LoginPasswordPrompt?) to cause proftpd to skip
  56.     password request if login will be denied regardless of password.
  57.  
  58.   + New directives to document:
  59.  
  60.     PersistentPasswd
  61.     AuthUserFile
  62.     AuthGroupFile
  63.     DirFakeUser
  64.     DirFakeGroup
  65.     RootLogin
  66.     IdentLookups
  67.     ShowSymlinks  (altered default in 1.1.5)
  68.  
  69. 6/1/98 JSS:
  70.  
  71. - TODO:
  72.  
  73.   + Rewrite i/o & buffer code.  It was originally somewhat of a
  74.     "exersise" in async i/o w/out using SIGIO/SIGURG or threads.
  75.     Neat in concept, poor in execution.  Creates massives problems
  76.     with dynamically generated data connections (i.e. recursive
  77.     directory listing), because all the data must be buffered before
  78.     it can be sent.  Rather, it would now be better to go to a completely
  79.     sync i/o model, using SIGURG to detect transfer interruption.
  80.  
  81. 5/24/98 JSS:
  82.  
  83. - TODO:
  84.  
  85.   + "Dyanmic" static <Directory> blocks.  Using "<Directory ~/ftp>"
  86.     should be applied to the currently authenticated user AFTER login.
  87.     Similar to how .ftpaccess works, but statically configured in the
  88.     main configuration file.
  89.  
  90.   + AuthAliasOnly directive: forces a particular configuration to ONLY
  91.     authenticate aliased usernames (only the left-most argument of
  92.     `UserAlias').  All others should be treated as if the user does
  93.     not exist for that config block.  If applied to a <VirtualHost>
  94.     or main config, this effectively means that non-alias usernames
  95.     do not exist AT ALL.  This would allow configurations where an
  96.     anonymous context runs as a _real user_ who also has normally
  97.     authenticated access to the system.  i.e.:
  98.  
  99.     # assuming user 'frank' is a real user
  100.  
  101.     <Anonymous ~frank/ftp>
  102.       User frank
  103.       Group users
  104.       UserAlias anonymous frank
  105.       UserAlias ftp frank
  106.       AuthAliasOnly on
  107.     </Anonymous>
  108.  
  109.     # now, if a user logs in as ftp or anonymous, they are jailed
  110.     # into ~frank/ftp, and the daemon runs as frank.users.
  111.     # If the user logs in as frank, they are authenicated normally
  112.     # and not jailed.
  113.  
  114.   + Expand DefaultRoot so that a root directory can be specified as
  115.     "~/anon-ftp", so that all logins (for which DefaultRoot matches)
  116.     are jailed into the authenticated user's $HOME/anon-ftp.
  117.  
  118.   + AnonymousGroup group-expression: makes all usernames matching
  119.     the group-expression explicitly anonymous; no password is
  120.     required.  Additionally, those forced anonymous by this directive
  121.     would be jailed into the proper matching DefaultRoot if one
  122.     exists, otherwise jailed into their home directory.  Some extra
  123.     security should be placed on this so that user's w/out home
  124.     directories (or DefaultRoot) are not allowed access.
  125.  
  126. - Specifying a `Port 0' (i.e. non-existant port) in either the main
  127. configuration or in a VirtualHost causes proftpd to not create a socket or
  128. bind to _any_ address for the given config.  This can be used to
  129. selectively disable certain virtualhosts w/out commenting out large
  130. portions of config.  Rather, the config still applies, however there is no
  131. possibility of network activity taking place on the associated
  132. configuration.  Intended purpose is really to allow the "main
  133. configuration" to not bind to any ip or port (although this would have no
  134. effect if SocketBindTight was off).  TODO: Document this in
  135. reference.html.
  136.  
  137. - Created this file in the proftpd-1.1 source tree and added to cvs.  Top
  138. of file should not be altered and should always retain existing text
  139. describing the contents of this file. 
  140.